#include<bits/stdc++.h>
using namespace std;
using ll=long long;
const ll mod=998244353;
ll qpow(ll x,ll y) {
	ll res=1;
	while(y) {
		if(y&1) 
			res=res*x%mod;
		x=x*x%mod;
		y>>=1;
	}
	return res;
}
ll fac[2000001];
ll inv[2000001];
void init(ll n) {
	fac[0]=1;
	for(ll i=1;i<=n;i++)
		fac[i]=fac[i-1]*i%mod;
	inv[n]=qpow(fac[n],mod-2);
	for(ll i=n;i>=1;i--)
		inv[i-1]=inv[i]*i%mod;
}
ll C(ll x,ll y){
	return fac[x]*inv[y]%mod*inv[x-y]%mod;
}
int main() {
	freopen("sequence.in","r",stdin);
	freopen("sequence.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	init(2000000);
	ll n,m,q,k;
	cin>>n>>m>>q>>k;
	ll ans=0;
	for(ll i=0;i<=m;i++) {
		ans=ans+C(m,m-i)*qpow(-1,i)%mod*qpow((n-i)*k%mod,q)%mod*qpow(qpow(k,m),mod-2)%mod;
		ans=ans%mod;
	}
	cout<<((ans*(n-m+1)%mod)%mod+mod)%mod;
	return 0;
}
/*

*/
